Embodiments of the present invention relate generally to methods and systems for testing software and more particularly to utilizing an intelligent automated script to test software applications.
During and following development, a software application is subjected to a variety of different tests. For example, prior to any application or version of the application being released to its users, for further development, for quality assurance testing, etc., a test should first be done to validate that no major errors are present that would prevent basic usability. That is, a test should be run to determine whether the application starts, the major functions are accessible, the user interface can be navigated, etc. Thus, for each product, a “sanity test” is normally performed. A typical sanity test includes the opening, querying, and closing of an application's pages, i.e., windows, specified in a data source.
One way to perform such a sanity test is for a tester to manually check various elements of the application. For example, a tester can manually navigate through a user interface for the application to confirm that the various elements basically function as they should such that more detailed testing can be done. However, for large applications or application suites, such testing can be very costly in terms of time and labor expenses. For example, if a tester performs a manual sanity test on an enterprise application suite, testing would require a significant amount of time. Manual testing by a multitude of manual testers would also be very expensive and still time consuming considering the dozens of pages and hundreds or thousands of objects that may be present in a product application. However, limiting sanity testing scope to reduce the time and expense needed to complete such a test could adversely affect the quality of the product. Moreover, the patching of any test environments to have an issue resolved after they have been created would require a significant amount of rework.
To reduce the time and expense of manual sanity testing, automated techniques for performing such testing have been developed. These automated techniques involve using a script, application, or suite of applications written to perform the basic procedures that the manual tester would follow. However, these scripts, applications, or suite of applications are specific to an application, suite, or version thereof that is to be tested. That is, the scripts or applications are hard-coded to function with a specific application, suite and version of that application. If a new version of the application or a different application is to be tested, the script must be modified or even completely re-written. Currently, there are no techniques using a common script that is adaptable to multiple applications and/or versions. Hence, there is a need in the art for improved methods and systems for testing software.